using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("SpellTable")]
	public class SpellTable : MonoBehaviour
	{
		public List<SpellTableEntry> m_Table => method_3<Class271<SpellTableEntry>>("m_Table")?.method_25();

		public SpellTable(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SpellTable(IntPtr address)
			: this(address, "SpellTable")
		{
		}

		public SpellTableEntry FindEntry(SpellType type)
		{
			return method_14<SpellTableEntry>("FindEntry", new object[1] { type });
		}

		public Spell GetSpell(SpellType spellType)
		{
			return method_14<Spell>("GetSpell", new object[1] { spellType });
		}

		public void ReleaseSpell(GameObject spellObject)
		{
			method_8("ReleaseSpell", spellObject);
		}

		public void ReleaseAllSpells()
		{
			method_8("ReleaseAllSpells");
		}

		public bool IsLoaded(SpellType spellType)
		{
			return method_11<bool>("IsLoaded", new object[1] { spellType });
		}

		public void SetSpell(SpellType type, Spell spell)
		{
			method_8("SetSpell", type, spell);
		}

		public void Show()
		{
			method_8("Show");
		}

		public void Hide()
		{
			method_8("Hide");
		}
	}
}
